package com.example.mybatisplus.web.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.stereotype.Controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.example.mybatisplus.common.JsonResponse;
import com.example.mybatisplus.service.BookService;
import com.example.mybatisplus.model.domain.Book;

import java.util.HashMap;
import java.util.List;
import java.util.Map;


/**
 * 前端控制器
 *
 * @author lxp
 * @version v1.0
 * @since 2023-07-05
 */
@Controller
@RequestMapping("/book")
public class BookController {
    @Autowired
    private BookService bookService;


    // 什么请求：get   post
    // 在springmvc中  默认是返回页面的
    // 基本上是做前后端分离开发  交互的都是数据
    // 如果要返回数据需要再加注解

    //前端传一个名字   后端接收这个名字  在数据库把这个名字传进来

    // get: ip+端口+url?x=y&a=b&c=d
    // 1.前端怎么传  后端怎么接   传递的键名必须匹配参数名  必须指定参数个数  少数
    // 2.后端用对象接  要求键名必须匹配对象属性名  如果没有完美符合键名的类？？创建一个！！！
    // 3.占位符传参

    // 4.前端传递json  后端怎么接
    @ResponseBody
    @GetMapping("list")
    public JsonResponse aa() {
        List<Book> books = bookService.listBook();
        return JsonResponse.success(books);
    }
    @ResponseBody
    @GetMapping("getById")
    public JsonResponse getById(Long id) {
        Book byId = bookService.getById(id);
        return JsonResponse.success(byId);
    }


    @GetMapping("hello")
    public String hello(Long id) {
        // 视图解析器  指定了默认的前缀和后缀
        // 前缀： /templates/
        // 后缀： .html
        return "hello";//  /templates/hello.html
    }

    // 127.0.0.1:8888  ==>  /

    // 发出响应：  1. 数据
    // 2. 返回页面
    // 返回值必须是字符串！！！  字符串必须是一个页面的名字
    // 返回数据格式不统一
}

